﻿using System.Data.Entity.ModelConfiguration;

namespace Delphi.Mimir.Data.Entities.Raw.Mappings {
    public class RawEpsRevisionMap : EntityTypeConfiguration<RawEpsRevision> {
        public RawEpsRevisionMap() {
            /******************************************************************
            /* Table
            /*****************************************************************/
            ToTable("raw.eod_eps_revisions");

            /******************************************************************
            /* Primary Key
            /*****************************************************************/
            HasKey(a => a.arv_id);

            /******************************************************************
            /* Index
            /*****************************************************************/
            // None

            /******************************************************************
            /* Relationships
            /*****************************************************************/
            // None

            /******************************************************************
            /* Properties
            /*****************************************************************/
            Property(a => a.arv_id)
                .IsRequired()
                .HasColumnName("arv_id");

            Property(a => a.arv_sym_cd)
                .IsRequired()
                .IsUnicode(false)
                .HasMaxLength(25)
                .HasColumnName("arv_sym_cd");

            Property(a => a.arv_exc_cd)
                .IsRequired()
                .IsUnicode(false)
                .HasMaxLength(25)
                .HasColumnName("arv_exc_cd");

            Property(a => a.arv_dt)
                .IsRequired()
                .HasColumnName("arv_dt");

            Property(a => a.arv_period)
                .IsRequired()
                .IsUnicode(false)
                .HasMaxLength(25)
                .HasColumnName("arv_period");

            Property(a => a.arv_curt_fg)
                .IsRequired()
                .HasColumnName("arv_curt_fg");

            Property(a => a.arv_up_7d)
                .IsOptional()
                .HasColumnName("arv_up_7d");

            Property(a => a.arv_up_30d)
                .IsOptional()
                .HasColumnName("arv_up_30d");

            Property(a => a.arv_down_30d)
                .IsOptional()
                .HasColumnName("arv_down_30d");

            Property(a => a.arv_down_90d)
                .IsOptional()
                .HasColumnName("arv_down_90d");
            
        }
    }
}
